Systems for gray component replacement blending

ABSTRACT

Color processing methods and apparatus are provided that blend the gray component replacement (“GCR”) level of arbitrarily-specified input color data with an estimate of the GCR level of an output profile, and then converts processed device-independent data to output CMYK data that has a GCR level that substantially matches the GCR level of the input CMYK data. Methods and apparatus in accordance with this invention may be used to receive CMYK data that approximates a spot color, and provide tints of spot colors using an output profile that has a GCR level that differs from the GCR level of the input color data.

REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.10/324,771, filed 19 Dec. 2002, now U.S. Pat. No. 7,259,893.

BACKGROUND

The invention relates to color printing, and in particular, to apparatusand methods that smoothly transition between two colors that have asimilar visual appearance but have different gray component replacementlevels.

In digital printing, a hardcopy output typically is printed on afour-color device from a digital image. Examples of four-color devicesinclude offset lithography in which the “four-color process” employsprinting inks as colorants applied to paper by a printing press; gravureprinting, which also employs printing inks applied to paper; off-pressproofing systems, which employ toners as colorants to simulate theeffect of an offset press; and computer-driven printers, which use avariety of technologies and colorants, such as inks, toners, and dyes,applied in various continuous-tone, halftone, or dithered patterns. Mostconventional four-color devices use three chromatic colorants, which arecommonly chosen to be the subtractive primaries cyan, magenta, andyellow (commonly referred to collectively as “CMY”), and an achromatic,or black, colorant (commonly referred to as “K”).

To print a digital image on a four-color device, it typically isnecessary to convert colors between different device color spaces. Forexample, a color image that has been scanned on a color scannertypically is defined in terms of red, green and blue (collectivelycalled “RGB”) colorants. If the scanned image is to be viewed on a colormonitor, the color image data typically must be converted from the colorspace of the scanner to the color space of the monitor. Moreover, if thescanned or displayed image also is to be printed on a CMYK colorprinter, the color image data must be converted from the color space ofthe scanner (or the monitor) to the color space of the printer. Thus, ittypically is necessary to convert between the color spaces defined bythe colors measured by the scanner, the RGB used by the monitor, andCMYK used by the printer.

To perform such conversions, previously known color management systemstypically use output profiles to describe the calorimetric properties ofdevices. Each output profile commonly contains a forward transformationsbetween a device-dependent color space and a device-independent colorspace, and a reverse transformation between a device-independent colorspace and a device-dependent color space. Thus, in the above example, afirst output profile may be used to convert between the device-dependentcolor space of the scanner, and a device-independent color space. Asecond output profile may be used to convert between thedevice-independent color space and the device-dependent color space ofthe monitor, and a third output profile may be used to convert betweenthe device-independent color space and the device-dependent color spaceof the CMYK printer.

A commonly-used device-independent color space is CIELAB, which wasadopted by the Comission Internationale de l'Eclairage (InternationalCommission on Illumination). Somewhere between the optical nerve and thebrain, retinal color stimuli are translated into distinctions betweenlight and dark, red and green, and blue and yellow. CIELAB indicatesthese values with three axes: L*, a*, and b*. L* represents lightness,whose values run from 0 (black) to 100 (white). a* represents red-greencolor, and has values that run from positive (indicating amounts of red)to negative (indicating amounts of green). b* represents blue-yellowcolor and has values that run from positive (indicating amounts ofyellow) to negative (indicating amounts of blue).

Most colors printed using a CMYK device may be printed with a variety ofdifferent combinations of CMYK colorants. That is, many combinations ofCMYK values map to the same L*a*b* value and hence have the same visualcolor appearance. Specifically, most of the colors produced by the Kcomponent alone can be produced by a combination of CMY components.Therefore, for colors that contain non-zero CMY values for all three CMYcomponents, one can reduce the amount of CMY and increase K to get thesame color (unless K is already at its maximum of 100%). Likewise, forcolors that contain non-zero K values, one can decrease the amount of Kand increase the amount of CMY to get the same color (unless any of CMYare already at their maximum of 100%).

In general, these options can be thought of as different balancesbetween the amount of K and the amount of a neutral combination of theprimary colorants CMY. Because the printed colors theoretically appearidentical, the choice among these options typically is made according toconsiderations of process control and repeatability, limits of theprinting technology, cost, aesthetic taste, and the like. Some of thecommon approaches to the usage of K versus CMY are referred to in theart as Under-Color Removal (“UCR”) and Gray-Component Replacement(“GCR”).

Previously known techniques for generating output profiles typicallyinclude GCR level as one component in the process used to generate theprofile. In particular, a set of test patches is printed on an outputdevice, and the patches are measured with a colorimeter. The measuredvalues and a desired GCR level then are used to determine the outputprofile for the printer. Although the output profile therefore has animplied GCR level, a typical user of the printing device (e.g., agraphic artist printing an image from a page layout program to theoutput device) typically does not know the GCR level that is implied inthe output profile. Nevertheless, if the user seeks to carefully controlthe GCR level of the printed output, the implied GCR level of theprinter's output profile may affect the user's ability to achieve aspecific GCR level in the printed output.

Referring now to FIGS. 1 and 2, previously known color processingsystems are described that illustrate this phenomenon. In particular,FIG. 1 illustrates previously-known color processing system 10, thatincludes first color converter 14, color processing module 16, andsecond color converter 18. First color converter 14 convertsdevice-dependent color values to device-independent color values. Theoutput of the first color converter is then provided to color processingmodule 16, which may include one or more modules that perform colorprocessing in device-independent color space. Finally, second colorconverter 18 converts device-independent color values todevice-dependent values for printing by printer.

One such previously known color processing system for editing spotcolors is illustrated in FIG. 2. In particular, color processing system10′ includes output profile forward lookup table 14′, tint module 16′and output profile reverse lookup table 18′. A spot color processingsystem, such as system 10′, typically permits a user to specify colorsin a CMYK color space. Spot colors are colors that typically usespecialized inks to produce colors that cannot be produced byconventional CMYK inks. Nevertheless, it often is useful to approximatesuch spot colors using CMYK inks, and therefore the ability to edit CMYKvalues that correspond to spot colors is a desirable feature. Spotcolors, just like CMYK colors, may be specified as tints which arepercentages of colorant. That is, if the solid spot color is 100%, spotcolor tints may be specified as percentages less than 100%. It isdesirable that a color processing system that simulates spot colors byusing CMYK values also should simulate spot color tints.

One approach to approximating spot color tints is to multiply the CMYKvalues for the solid (100%) spot color by the tint value (percentage).Thus, for example, a 30% spot color tint would have CMYK values that are30% of those of the solid 100% spot color CMYK values. This approach isnot very accurate, however, because the color balance of CMY going from100% to 0% is not constant. As a result, merely applying a tint value(percentage) to CMYK values will result in an unintended hue shift. Abetter approach to approximating spot color tints is to convert the CMYKvalues to device-independent color values (such as L*a*b* values), andthen scale the corresponding L*a*b* values, which generally does notresult in a hue shift.

Thus, as shown in FIG. 2, output profile forward lookup table 14′converts input color values CMYK_(I) to device-independent color valuesL*a*b*_(I). Tint Module 16′ may include processes or apparatus that tintspot colors by scaling L*a*b*_(I) values. If tinting is performed inL*a*b* color space, however, the tinted colors ultimately must beconverted back to CMYK space, such as by using output profile reverselookup table 18′. Because the GCR level of the user-specified spot colortypically differs from the GCR level implied by output profile reverselookup table 18′, CMYK_(O) may appear calorimetrically similar toCMYK_(I), but may have component values that substantially differ fromCMYK_(I) at 100%. Indeed, there are many more possible arbitrary CMYKcolors that may be specified by a user compared to the specific subsetof CMYK colors defined by output profile reverse lookup table 18′. As aresult, the GCR level of CMYK_(O) may substantially differ from the GCRlevel of CMYK_(I), and the printed output colors may not actually appearas desired by the user.

It therefore would be desirable to provide color processing methods andapparatus that smoothly transition from an arbitrary CMYK color to theCMYK values as specified in the output profile of the system.

It further would be desirable to provide color processing methods andapparatus that estimate the GCR level of arbitrarily specified CMYKvalues and the implied GCR level of an output profile, and provideoutput CMYK values that are based on a blend of the estimated GCRlevels.

It still further would be desirable to provide color processing methodsand apparatus that provide CMYK values that approximate tints of spotcolors, and that are based on a blend of the estimated GCR level ofuser-specified CMYK values that approximate the spot color, and theimplied GCR level of an output profile.

SUMMARY OF THE INVENTION

In view of the foregoing, it is an object of this invention to providecolor processing methods and apparatus that smoothly transition from anarbitrary CMYK color to the CMYK values as specified in the outputprofile of the system.

It further is an object of this invention to provide color processingmethods and apparatus that estimate the GCR level of arbitrarilyspecified CMYK values and the implied GCR level of an output profile,and provide output CMYK values that are based on a blend of theestimated GCR levels.

It still further is an object of this invention to provide colorprocessing methods and apparatus that provide CMYK values thatapproximate tints of spot colors, and that are based on a blend of theestimated GCR level of user-specified CMYK values that approximate thespot color, and the implied GCR level of an output profile.

These and other objects of this invention are accomplished by providingcolor processing methods and apparatus that receivearbitrarily-specified input CMYK values, convert the input CMYK valuesto device-independent color space and process the input data in thatspace, estimate the GCR level of the input CMYK values, estimate the GCRlevel of an output profile, blend the GCR level estimates, and thenconvert the processed device-independent data to output CMYK data thathas a GCR level that substantially matches the GCR level of the inputCMYK data. More particularly, this invention provides methods andapparatus for receiving CMYK values that approximate a spot color, tintthe input color data in a device-independent color space, and thenprovide output CMYK values that approximate tints of spot colors andthat have a GCR level that is a blend on the GCR levels of input CMYKvalues and the implied GCR level of an output profile.

Other aspects and advantages of the invention will become apparent fromthe following detailed description in combination with the accompanyingdrawings, illustrating, by way of example, the principles of theinvention.

BRIEF DESCRIPTION OF THE DRAWINGS

The above-mentioned objects and features of the present invention can bemore clearly understood from the following detailed descriptionconsidered in conjunction with the following drawings, in which the samereference numerals denote the same elements throughout, and in which:

FIG. 1 is a block diagram of a previously known color processing method;

FIG. 2 is a block diagram of a previously known color processingapparatus that provides tints;

FIG. 3 is an exemplary method for providing CMYK values with a blendedGCR level in accordance with this invention; and

FIG. 4 is an alternative exemplary method for providing CMYK values thatapproximate tints of spot colors in accordance with this invention.

DETAILED DESCRIPTION

This invention provides color processing methods and apparatus thatreceive arbitrarily-specified input CMYK values, color process the datain a device-independent color space, and then provide output CMYK datathat has a GCR level that substantially matches the GCR level of theinput CMYK data. More particularly, this invention provides methods andapparatus for receiving CMYK values that approximate a spot color, tintthe input color data in a device-independent color space, and thenprovide output CMYK values that approximate tints of spot colors andthat have a GCR level that is a blend on the GCR levels of input CMYKvalues and the implied GCR level of an output profile. Methods inaccordance with this invention may be implemented in the form ofcomputer-executable instructions, such as software modules, that may beexecuted by a computer device. Such software modules may includeroutines, programs, objects, components, data structures, etc. thatperform tasks or implement particular abstract data types. Persons ofordinary skill in the art will understand that at least some aspects ofthis invention may be practiced using personal computers,microprocessor-based computers, multiprocessor systems, networkcomputers, servers, minicomputers, set top boxes, mainframe computers,and other suitable computer systems. In addition, at least some aspectsof this invention may be practiced in distributed computing environmentsin which task are performed by remote processing devices linked via acommunications network.

Referring now to FIG. 3, an illustrative method in accordance with thisinvention is described. At step 12, input color data CMYK_(I) isreceived. Input color data CMYK_(I) may be provided, for example, by auser via a graphics arts software application, the output of an outputprofile, or any other source of color data. At step 14, input color dataCMYK_(I) are converted to a device-independent color space, such asCIELAB, CIEXYZ, calibrated RGB, or any other similar device-independentcolor space. This conversion may be performed using any conventionaltechnique for converting device-dependent color data todevice-independent color data. For example, step 14 may be implementedusing a forward lookup table of a printer output profile. As shown inFIG. 3, input color data CMYK_(I) are converted to CIELAB valuesL*a*b*_(I).

Next, at step 16, the input color data are processed indevice-independent color space to provide processed color dataL*a*b*_(T). Such color processing may include one or more conventionalcolor processing steps, such as tinting, gamut mapping, or any otherconventional color processing functions. At step 18, processed colordata L*a*b*_(T) are converted to device-dependent color data CMYK_(P).This conversion step may be performed using any conventional techniquefor converting data from device-independent color space todevice-dependent color space. For example, step 18 may be implementedusing a reverse lookup table of a printer output profile.

Although the GCR level of input data CMYK_(I) may be known (for example,when a user specifies the GCR level), the GCR level of processed outputCMYK_(P) typically will not be known. For example, if CMYK_(P) isgenerated using a printer output profile, the GCR level of the outputprofile typically will not be known. Further, in many instances the GCRlevel of CMYK_(I) also may not be known. Thus, at steps 22 and 24, theGCR levels of input color data CMYK_(I) and processed color dataCMYK_(P) are estimated as GCR_(I) and GCR_(P), respectively. GCRestimation may be performed using any suitable technique or formula forestimating the GCR level of CMYK data. As described in more detailbelow, one exemplary method for estimating the GCR level of CMYK datauses the corresponding lightness (L*) value of the black-only componentK of CMYK data as a proxy for GCR level.

Referring again to FIG. 3, at step 26 GCR estimates GCR_(I) and GCR_(P)are combined or blended to produce GCR_(B). Any suitable technique forblending the GCR estimates may be used at this stage, such as linear ornonlinear combinations of GCR_(I) and GCR_(P). As described in moredetail below, the blending function may be empirically derived based onother processing requirements. Next, at step 28, the black componentK_(B) that corresponds to GCR_(B) is determined. In particular, aninverse of the formula or technique used in steps 22 and 24 to determineGCR level based on K-value is used to determine K_(B) based on GCR_(B).As described in more detail below, one exemplary method for determiningK_(B) is based on blended lightness (L*)values. Finally, at step 30,black component K_(B) and processed color data L*a*b*_(T) are used todetermine CMY values that, when combined with K_(B), provide outputcolor data CMY_(B)K_(B) that substantially matches the GCR level ofCMYK_(I).

As described above, some previously known color processing systems allowa user to provide CMYK values that approximate spot colors. As furtherdescribed above, it is often desirable in such color processing systemsto produce CMYK values that approximate tints of spot colors. Referringnow to FIG. 4, an exemplary embodiment of a spot color tinting processin accordance with this invention is described. At step 12, input colordata CMYK_(I) that approximates a spot color is received. CMYK_(I) maybe provided, for example, by a user via a user interface in a colorprocessing software application. Alternatively, CMYK_(I) may be providedby any other similar method for providing CMKY values that approximate aspot color.

Next, at step 14′, CMYK_(I) data are converted to device-independentcolor data L*a*b*_(I) using an output profile of the printer that willbe used to print the tinted spot colors. In particular, the outputprofile typically includes a forward lookup table that convertsdevice-dependent color data (e.g., CMYK data) to device-independentcolor data (e.g., L*a*b* data), and a reverse lookup table that convertsdevice-independent color data (e.g., L*a*b* data) to device-dependentcolor data (e.g., CMYK data). Thus, at step 14′, the forward lookuptable is used to convert CMYK_(I) to data L*a*b*_(I).

Next, at step 16′, a tinted spot color is created in device-independentcolor space. That is, a tinted spot color is created by scalingL*a*b*_(I). An exemplary technique for providing a tinted spot coloruses the following formula:L*a*b* _(T) =T×(L*a*b* _(I))+(1−T)×(L*a*b* _(MAX))  (1)where L*a*b*_(T) are the L*a*b* values of the tinted spot color, T isthe desired tint level (T=1.0 (100%) to 0.0 (0%)), and L*a*b*_(MAX) arethe L*a*b* values from the forward lookup table of the output profilethat corresponds to CMYK=(0,0,0,0). Note that the formula of Equation(1) merely illustrates one exemplary technique for tinting L*a*b* data.Persons of ordinary skill in the art will understand that any othersimilar technique for generating tints may be used. Also note that theformula of Equation (1) may be used to generate one or more tint valuesL*a*b*_(T) that correspond to one or more tint levels 0≦T≦1.

Next, at step 18′, tint values L*a*b*_(T) are converted todevice-dependent color data CMYK_(P) using the reverse lookup table ofthe printer's output profile. At steps 22′ and 24′, the GCR levels ofinput color data CMYK_(I) and tint color data CMYK_(P) are estimated. Inparticular, the corresponding lightness (L*) value of the black-onlycomponent K of CMYK data is used as a proxy for GCR level. Thus, at step22′, the L*a*b* values corresponding to (0,0,0,K_(I)) are determinedfrom the forward lookup table of the output profile, and the L* value isextracted as L*(K_(I)). Similarly, at step 24′, the L*a*b* valuescorresponding to (0,0,0,K_(P)) are determined from the forward lookuptable of the output profile, and the L* value is extracted as L*(K_(P)).

Next, at step 26′, lightness values L*(K_(I)) and L*(K_(P)) are combinedor blended to provided blended lightness value L*_(B). The lightnessvalues may be blended using any suitable linear or non-linear formulafor combining L*(K_(I)) and L*(K_(P)). For example, a formula forcombining L*(K_(I)) and L*(K_(P)) may be determined empirically byprinting of test patches using various blending formulas, and selectingthe formula that produces the most desirable results. For the case oftinting spot colors, the following exemplary blending formulas producegood results:L* _(B) =s ^(b)×(L*(K _(I)))+(1−T)×(L* _(MAX))+(1−s ^(b))×(L*(K_(P)))  (2)s=T−a×(1−T), clipped so that 0≦s≦1  (3)where T is the desired tint level (T=1.0 (100%) to 0.0 (0%)), a is anoffset value, b is a power function, and L_(MAX) is the L* value of theL*a*b* values from the forward lookup table of the output profile thatcorresponds to CMYK=(0,0,0,0). Exemplary values for a and b are a=0.2and b=2. Persons of ordinary skill in the art will understand thatblending functions other than those described by Equations (2) and (3)may be used, and that other values may be used for variables a and b.

Referring again to FIG. 4, at step 28′, the black-only component K_(B)that corresponds to L*_(B) is determined. In particular, the CMYK valuesthat correspond to (L*_(B),0,0) are determined from the reverse lookuptable of the output profile, and the black value is extracted as K_(B).Finally, at step 30, black component K_(B) and tint color dataL*a*b*_(T) are used to determine CMY values that, when combined withK_(B), provide output color data CMY_(B)K_(B) that has a GCR level thatsubstantially matches the GCR level of CMYK_(I). In particular, usingthe forward lookup table of the output profile, and fixing the K-valueto K_(B), the lookup table is searched to find the CMY values thatconvert to L*a*b* values that substantially match L*a*b*_(T). Persons ofordinary skill in the art will understand that steps 16′ through 30′ maybe repeated for multiple tint color values L*a*b*_(T) to producemultiple output color values CMY_(B)K_(B) in accordance with thisinvention.

Persons of ordinary skill in the art will understand that methods inaccordance with this invention may be implemented in hardware orsoftware, or any combination of hardware and software in accordance withwell-known techniques. Exemplary apparatus for implementing at leastsome aspects of this invention include a general purpose computingdevice, such as a personal computer, and a special purpose computingdevice, such as a controller for digital printers and digital copiers.Such computing devices may include a computer memory such as read onlymemory, hard disk, magnetic disk, optical disk, or other suitable memorythat may be used to store software modules and other data, such aslookup tables, used to implement methods of the present invention.

Persons of ordinary skill in the art also will understand that methodsin accordance with this invention may be implemented in the form ofcomputer-executable instructions, such as software modules, that may beexecuted by a computer device. Such software modules may includeroutines, programs, objects, components, data structures, etc. thatperform tasks or implement particular abstract data types. Persons ofordinary skill in the art further will recognize that methods andapparatus in accordance with this invention may be implemented usingsteps or devices other than those shown and discussed above. All suchmodifications are within the scope of the present invention, which islimited only by the claims that follow.

1. A computer program product for processing input CMYK color data, thecomputer program product embodied on a computer-readable mediumcomprising computer readable code adapted to: convert input color datato first color data; process the first color data to provide secondcolor data; convert the second color data to third color data using anoutput profile that comprises an implied gray component replacementlevel; estimate a gray component replacement level of the input colordata; estimate the gray component replacement level implied by theoutput profile; combine the estimated gray component replacement levels;determine a black value based on the combined gray component replacementlevel; and use the determined black value and the second color data todetermine output color data that has a gray component replacement levelthat substantially matches the gray component replacement level of theinput color data.
 2. The computer program product of claim 1, whereinthe first color data are device-independent color data.
 3. The computerprogram product of claim 1, wherein the computer readable code isfurther adapted to process the first color data in a device-independentcolor space.
 4. The computer program product of claim 1, wherein thethird color data are device-dependent color data.
 5. The computerprogram product of claim 1, wherein the output profile comprises alookup table.
 6. The computer program product of claim 1, wherein theinput color data comprises CMYK data that approximates a spot color. 7.The computer program product of claim 1, wherein the computer readablecode is further adapted to tint the first color data.
 8. A computerprogram product for processing input CMYK color data, the computerprogram product embodied on a computer-readable medium comprisingcomputer readable code adapted to: convert the input color data to adevice-independent color space; process the converted data in thedevice-independent color space; convert the processed data to adevice-dependent color space using an output profile; estimate a graycomponent replacement level of the input color data; estimate a graycomponent replacement level implied by the output profile; combine thegray component replacement levels; determine a black value based on thecombined gray component replacement level; and use the determined blackvalue and the processed data to determine output color data that has agray component replacement level that substantially matches the graycomponent replacement level of the input color data.
 9. The computerprogram product of claim 8, wherein the device-independent color spaceis a CIELAB color space.
 10. The computer program product of claim 8,wherein the computer readable code is further adapted to tint theconverted data in the device-independent color space.
 11. The computerprogram product of claim 8, wherein estimating the gray componentreplacement level of the input color data comprises determining alightness level of a black-only component of the input color data. 12.The computer program product of claim 8, wherein the computer readablecode is further adapted to estimate the gray component replacement levelimplied by the output profile by determining a lightness level of ablack-only component of the converted processed data.
 13. A computerprogram product for processing input CMYK color data, the computerprogram product embodied on a computer-readable medium comprisingcomputer readable code adapted to: convert the input color data to firstcolor data; tint the converted data to provide second color data;convert the second color data to third color data using an outputprofile; determine a first lightness component that corresponds to ablack-only component of the input color data; determine a secondlightness component that corresponds to a black-only component of thethird color data; blend the first and second lightness components toprovide a blended lightness level; determine a black output componentbased on the blended lightness level; and use the black output componentand the second color data to determine output color data that has a graycomponent replacement level that substantially matches a gray componentreplacement level of the input color data.
 14. The computer programproduct of claim 13, wherein the output profile comprises a forwardlookup table that associates CMYK data with L*a*b* data.
 15. Thecomputer program product of claim 14, wherein the computer readable codeis further adapted to determine the first lightness component bydetermining an L* component from the forward table that is associatedwith the black-only component of the input color data.
 16. The computerprogram product of claim 14, wherein the computer readable code isfurther adapted to determine the second lightness component bydetermining an L* component from the forward table that is associatedwith the black-only component of the third color data.
 17. The computerprogram product of claim 14, wherein the computer readable code isfurther adapted to determine output color data by fixing the blackoutput component and determining output CMY components from the forwardtable.
 18. The computer program product of claim 13, wherein the outputprofile comprises a reverse lookup table that associates L*a*b* datawith CMYK data.
 19. The computer program product of claim 14, whereinthe computer readable code is further adapted to determine the blackoutput component by determining a black component from the reverse tablethat is associated with the blended lightness level.